package com.cloud.lan.entity.model.dataobject;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 兑换码活动信息表
 * </p>
 *
 * @author xyqierkang@163.com
 * @since 2021-12-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("lan_activity")
public class LanActivityDO implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 兑换码名称
     */
    private String acName;

    /**
     * 兑换码活动类型 1:线下劵 2:线上劵 3:活动卷 4:星品体验官福利卷 5:外部系统券 6:注册有礼
     */
    private Integer acType;

    /**
     * 兑换码活动数量
     */
    private Integer acCount;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    /**
     * 活动描述
     */
    private String acDesc;

    /**
     * 暗号、口令
     */
    private String acCode;

    /**
     * 店铺名称
     */
    private String acStore;

    /**
     * 单用户领取次数 0:不限制 大于0领取有效期内领取次数
     */
    private Integer receiveLimit;

    /**
     * 封面地址
     */
    private String acImg;

    /**
     * 封面地址2
     */
    private String acImg2;

    /**
     * 1:已上架(进行中) 2:已下架 3:已失效
     */
    private Integer status;

    /**
     * 是否删除，0.否，1.是
     */
    @TableLogic
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 兑换码已使用数量
     */
    @TableField(exist = false)
    private Integer useCount;

    /**
     * 兑换码已领取数量
     */
    @TableField(exist = false)
    private Integer receiveCount;

    /**
     * 市名称
     */
    private String cityName;
}
